Mit dem generischen Auftragsimport können Kunden Ihre Bestellung in einer XML übermitteln, die per Skript in die ingenious Datenbank eingelesen und als Auftrag angelegt wird.
Die Einstellungen für den Dokumentenimport werden am Kontaktdatensatz des Kunden gespeichert.
Für jeden Kunden können die Dateiablage und die XML-Struktur individuell definiert werden.
Konfiguration des XML Dokumentenimport für einen Kontakt |
Für die Einstellungen des XML Dokumentenimports stehen die folgenden Funktionen über die Icon-Leiste zur Verfügung:
Fügt einen Artikel mit seiner Vorkonfiguration in die XML Struktur ein. | |
Fügt einen neuen Knoten hinzu. | |
Löscht den markierten Knoten. (Knoten, die für die Struktur mindestens erforderlich sind, können nicht entfernt werden. | |
Exportiert die XML Vorlage zur Weitergabe an den Kunden. Es öffnet der Windows Speichern Dialog, in dem Ablageort gewählt und der Dateiname vergeben werden kann. |
XML Dokumentenimport aktiv | Checkbox | Festlegung, ob der Kunde an den Auftragsimport angeschlossen ist. |
Import von | Auswahlliste + einfaches Eingabefeld |
Auswahl, ob der Import von einem lokalen oder Netzwerk-Verzeichnis oder von einem FTP Server erfolgen soll + Angabe des Ablage-Pfades |
Erfolgreich importierte Dateien sichern unter | Auswahlliste + einfaches Eingabefeld | Auswahl, ob erfolgreich importierte Dateien in einem lokalen oder Netzwerk-Verzeichnis oder auf einem FTP Server gesichert werden sollen + Angabe des Ablage-Pfades Für die Speicherung in der lokalen bzw. Netzwerk-Verzeichnisstruktur kann über das Ordner-Symbol der entsprechende Ordner ausgewählt werden. Die Angabe des FTP-Ordners erfolgt ohne Angabe des FTP-Hosts. |
Fehlerhafte Dateien sichern unter | Auswahlliste + einfaches Eingabefeld | Auswahl, ob fehlerhafte Dateien in einem lokalen oder Netzwerk-Verzeichnis oder auf einem FTP Server abgelegte werden sollen + Angabe des Ablage-Pfades Für die Speicherung in der lokalen bzw. Netzwerk-Verzeichnisstruktur kann über das Ordner-Symbol der entsprechende Ordner ausgewählt werden. Die Angabe des FTP-Ordners erfolgt ohne Angabe des FTP-Hosts. |
Fehlermeldung senden an | Einfaches Eingabefeld | Eingabe der Empfänger E-Mail-Adresse(n), an die eine Meldung im Fehlerfall gesendet werden soll. Mehrere E-Mail-Adressen sind mit einem Semikolon getrennt einzugeben. |
Host | Einfaches Eingabefeld | Adresse des Hosts des FTP-Servers ohne führendes ftp. oder ftp:// |
Login | Einfaches Eingabefeld | Login für den Kunden für den Zugriff auf den FTP-Server |
Passwort | Einfaches Eingabefeld | Passwort für den Kunden für den Zugriff auf den FTP-Server |
passiv |
Checkbox |
Einstellung, ob der FTP-Zugriff über den passiven Modus geschehen soll |
SSL | Checkbox | Einstellung, ob über verschlüsseltes Protokoll (SSL) kommuniziert werden soll |
In den XML-Einstellungen wird die Struktur der XML-Datei vorgegeben.
Für jede neue Kunden-Konfiguration wird die Basis-Struktur geladen, die aus dem Header und der Item-List besteht.
Für jeden Knoten wird der Name, die Verknüpfung zum Datenbankfeld oder Stücklistenvariable, eine optionale individuelle Beschreibung, ein eventueller vorbelegter Standardwert und das Kennzeichen für ein Pflichtfeld angegeben.
Im Header werden die Kopfdaten des Auftragsdokuments angegeben.
Die Standard-Knoten stellen die Minimalkonfiguration der XML-Struktur dar.
Diese müssen in der vom Kunden angelieferten XML zwingend enthalten sein.
Standard-Knoten können nicht gelöscht werden.
Knoten | Feld-Verknüpfung | Standardwert | Beschreibung |
CUSTOMER | DB.Contact.Matchcode | vorbelegt mit dem Matchcode des Kunden, nicht änderbar | Angabe des Kunden zur Zuordnung des Auftrags |
NAME | DB.Project.document_name | Angabe eines Standardwertes für den Namen des Dokuments, mit dem der Auftrag importiert werden soll | Hier wird der Projektdokumentname vorgegeben, unter dem die Auftragsdokumente importiert werden sollen. Stimmt der Name mit einem in den Programmeinstellungen definierten Projektdokument überein, so wird aus dieser Konfiguration der Zähler generiert. Muss ein Dokument vom Typ Auftragsbestätigung = Status 1 sein. |
NUMBER | DB.Project.no_of_subsidiary_project | Angabe eines Standardwertes für die Projekt Kommission(snummer), mit der der Auftrag importiert werden soll | Angabe einer kundenindividuellen Auftrags-/Bestellnummer oder Kommissionsbezeichnung, die in das Projektfeld Kommission übernommen wird; die interne Dokumentennummer wird automatisch vergeben. |
Über den Button können dem Header weitere Konten hinzugefügt werden.
Mit dem Knoten <DELIVERY_DATE> mit der Verknüpfung zu einem Projektdatumsfeld, z.B. DB.date_9 kann zum Beispiel der Kunde einen Wunschliefertermin übermitteln.
In der Positionsliste <ITEM_LIST> werden alle Positionen eines Auftrags aufgelistet.
Für jede Position wird ein Knoten <ITEM> geschrieben, der die folgenden Standard-Elemente enthält:
Knoten | Feld-Verknüpfung | Standardwert | Beschreibung |
ITEM-ID | DB.Item.number | Wurde ein Artikel explizit für den XML Auftragsimport konfiguriert, so ist hier automatisch seine Artikelnummer eingetragen. | Interne Artikelnummer der Position |
ITEM-NAME | DB.Item.matchcode | Wurde ein Artikel explizit für den XML Auftragsimport konfiguriert, so ist hier automatisch sein Artikelmatchcode eingetragen. | Interner Matchcode der Position |
QUANTITY | DB.Project_item.quantity | z.B. 1 oder höher, wenn eine Mindestanzahl bestellt werden muss | Menge, in der der Artikel bestellt wird |
X | DB.Project_item.x | z.B. 100 oder höher, wenn eine Mindestlänge bestellt werden muss | Länge, in der der Artikel bestellt wird, bzw. Breite bei Flächenartikeln, soweit auf den jeweiligen Artikel zutreffend Angabe entsprechend der in den Programmeinstellungen konfigurierten Eingabe-Maßeinheit (cm, mm, inch) |
Y | DB.Project_item.y | z.B. 100 oder höher, wenn eine Mindestbreite bestellt werden muss | Höhe, in der der Artikel bestellt wird, soweit auf den jeweiligen Artikel zutreffend Angabe entsprechend der in den Programmeinstellungen konfigurierten Eingabe-Maßeinheit (cm, mm, inch) |
Z | DB.Project_item.z | z.B. 100 oder höher, wenn eine Mindesttiefe bestellt werden muss | Tiefe, in der der Artikel bestellt wird, soweit auf den jeweiligen Artikel zutreffend Angabe entsprechend der in den Programmeinstellungen konfigurierten Eingabe-Maßeinheit (cm, mm, inch) |
Für jeden zu bestellenden Artikel müssen alle Eigenschaften definiert werden, mit denen er eindeutig identifiziert bzw. produziert werden kann.
Für Produkte, die aus mehreren Einzelteilen gerfertigt werden, müssen auch Angaben zur gewünschten Ausführung gemacht werden.
In den so genannten Stücklisten sind alle Varianten eines komplexen Produkts definiert.
Für jede Eigenschaft wird eine Variable festgelegt, die unterschiedliche Werte enthalten kann.
In der XML-Struktur müssen für einen solchen Artikel alle notwendigen Variablen aufgeführt werden.
Über den Button kann über die Artikelsuche die gewünschte Stückliste geladen werden.
Es öffnet die Checkliste, in der bestimmt wird, welche Optionen in der XML enthalten sein sollen (1. Checkbox) und welche Optionen zwingend gefüllt werden müssen (2. Checkbox).
Außerdem kann bereits eine Standardkonfiguration vorgenommen werden.
Sind für einzelne Optionen in der vom Kunden übermittelten XML keine Werte eingetragen, so wird der Standardwert angenommen (z.B. der Kunde bestellt immer eine bestimmte Profilart oder Farbe).
Konfiguration einer Stückliste für den XML Auftragsimport eines Kunden |
Alle Parameter einer Stückliste werden entsprechend der vorangegangenen Konfiguration in die XML-Struktur geladen.
Anschließend können die Details der einzelnen Knoten weiter bearbeitet werden.
So können z.B. in der Beschreibung die möglichen Werte eines Parameters zur Info für den Kunden angegeben werden.
Artikel-Knoten einer Stückliste |
Die Vorkonfiguration einer Stückliste kann auch bereits in den Artikeldaten erfolgen und steht dann beim Hinzufügen des Artikels für alle Kundenkonfigurationen zur Verfügung.
vgl. Quellcode Ansicht und Aufmass
Ist die XML-Struktur fertig definiert, so kann über den Button eine Vorlage für den Kunden exportiert werden.
Mit Hilfe dieser Vorlage kann der Kunde für seine Software einen Export seiner Bestellungen programmieren (lassen).
XML-Vorlage |
Kopiere Code |
---|---|
<?xml version="1.0" encoding="utf-8"?> <DOCUMENT mandatory="true"> <HEADER mandatory="true"> <CUSTOMER mandatory="true" description="Kurzbezeichnung des Kunden">Mustermann GmbH</CUSTOMER> <NAME mandatory="true" description="Name des Dokuments">Auftragsbestätigung</NAME> <NUMBER description="Projektkommission oder eigene Bestellnummer"></NUMBER> <DELIVERY_DATE description="Wunschliefertermin"></DELIVERY_DATE> </HEADER> <ITEM_LIST mandatory="true"> <ITEM> <ITEM-ID mandatory="true" description="Artikelnummer"></ITEM-ID> <ITEM-NAME mandatory="true" description="Artikelmatchcode"></ITEM-NAME> <QUANTITY mandatory="true">1</QUANTITY> <X>100</X> <Y>100</Y> <Z>100</Z> </ITEM> <ITEM> <ITEM-ID mandatory="true">R1</ITEM-ID> <ITEM-NAME mandatory="true">Rollladenpanzer</ITEM-NAME> <QUANTITY mandatory="true">1</QUANTITY> <X mandatory="true">100</X> <Y mandatory="true">100</Y> <info></info> <vPType mandatory="true">ALU 36 mm</vPType> <vPoLS>0</vPoLS> <vPColor mandatory="true" description="Farbe: PVC: weiß, beige, braun, grau, tannengrün; ALU: weiß, beige, braun, grau, azurblau, moosgrün, tannengrün, RAL">braun</vPColor> <vPRal></vPRal> <vPAtt mandatory="true">Mini-Aufhängefeder</vPAtt> <vEType>ALU-Endleiste</vEType> <vEDiffColor>False</vEDiffColor> <vEColor>braun</vEColor> <vERal></vERal> <vEStpType>27mm</vEStpType> <vEStpFarbe>braun</vEStpFarbe> <vEBohren>True</vEBohren> </ITEM> </ITEM_LIST> </DOCUMENT> |
Der Import der Auftragsdaten selbst wird zeitgesteuert durch den Scheduler ausgeführt.
Dafür ist ein Skript für das Modul Scheduler mit folgendem Aufruf anzulegen:
XML_Import |
Kopiere Code |
---|---|
public void XML_Import(out bool bError, out string sResult, out string sDescription) { bError = false; sResult = ""; sDescription = ""; ingenious.net.Moduls.ProjectXmlImport.Import.Start(out bError, out sResult, out sDescription); } |
Im Scheduler wird dann in der Allgemeinen Aufgabenplanung dieses Skript als auszuführende Methode ausgewählt.